package com.entrogy.service;

import com.entrogy.bean.StudentTemperatureInfoEntity;
import com.entrogy.bean.TeacherTemperatureInfoEntity;
import com.entrogy.bean.TemperatureAnalysisEntity;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;

/**
 * @ClassName TemperatureAnalysisService
 * @Description
 * @Author luoxingjiang
 * @Date 2020-02-28 上午 10:49
 * @Version 1.0
 **/
public interface TemperatureAnalysisService {

    /**
     * 查看学校的教师体温统计概览
     * @param schoolCode 学校id
     * @param selectDate 查询日期
     * @param normalTemperate
     * @return
     */
    TemperatureAnalysisEntity getSchoolTeacherTemperatureInfoOverview(Integer schoolCode, Date selectDate, Double normalTemperate);

    /**
     * 查看学校的学生体温统计概览
     * @param schoolCode 学校id
     * @param selectDate 查询日期
     * @param normalTemperate
     * @param timeFrameType
     * @return
     */
    TemperatureAnalysisEntity getSchoolStudentTemperatureInfoOverview(Integer schoolCode, Date selectDate, Double normalTemperate, Integer timeFrameType);

    /**
     * 查看各个年级的体温统计情况
     * @param schoolCode
     * @param timeFrameType
     * @param selectDate
     * @param normalTemperate
     * @return
     */
    List<TemperatureAnalysisEntity> listGradeTemperatureInfoOverview(Integer schoolCode, Integer timeFrameType, Date selectDate, Double normalTemperate);

    /**
     * 查看各个班级的体温统计情况
     * @param selectDate
     * @param schoolCode
     * @param gradeId
     * @param timeFrameType
     * @param normalTemperate
     * @return
     */
    List<TemperatureAnalysisEntity> listClassTemperatureInfoOverview(Date selectDate, Integer schoolCode, Integer gradeId, Integer timeFrameType, Double normalTemperate);

    /**
     * 查询教师体温数据
     * @param schoolCode
     * @param normalTemperature
     * @param normalFlag 是否查询体温正常数据
     * @param startTime
     * @param endTime
     * @return
     */
    List<TeacherTemperatureInfoEntity> listTeacherTemp(Integer schoolCode, Double normalTemperature, boolean normalFlag, LocalDateTime startTime, LocalDateTime endTime);


    /**
     * 查询学生体温数据
     * @param schoolCode
     * @param normalTemperature
     * @param normalFlag
     * @param startTime
     * @param endTime
     * @return
     */
    List<StudentTemperatureInfoEntity> listStudentTemp(Integer schoolCode, Double normalTemperature, boolean normalFlag, LocalDateTime startTime, LocalDateTime endTime, Integer gradeId, Integer classId);

    /**
     * 家长查询自己孩子们的体温数据
     * @param parentId
     * @param startTime
     * @param endTime
     * @param studentId
     * @return
     */
    List<StudentTemperatureInfoEntity> listChildTempInfo(String parentId, LocalDateTime startTime, LocalDateTime endTime, Integer studentId);

    /**
     * 分班级、时段查询学生体温数据
     * @param schoolCode
     * @param normalTemperature
     * @param normalFlag 是否查询体温正常数据
     * @param gradeId
     * @param classId
     * @param timeFrameType
     * @param selectDate
     * @return
     */
    List<StudentTemperatureInfoEntity> listStudentTemp(Integer schoolCode, Double normalTemperature, boolean normalFlag, Integer gradeId, Integer classId, Integer timeFrameType, String selectDate);
}
